//////////////////////////////////////////////////////////////////////
//  Jack McCaffery
//  11-10-2014
//////////////////////////////////////////////////////////////////////

#include "topicModel/generalParameters.H"


template <class SC>
GeneralParameters<SC>::~GeneralParameters ()
{

}

template <class SC>
GeneralParameters<SC>::GeneralParameters () :
	ParameterGroup<SC> ()
{

}

template <class SC>
void GeneralParameters<SC>::applyGradient (
	FixedParameters<SC> const &gradient_, double rate_)
{
	if (this->data.rows () != gradient_.getData ().rows ())
		qFatal ("Gradient rows do not match parameter rows");

	if (this->data.cols () != gradient_.getData ().cols ())
		qFatal ("Gradient rows do not match parameter columns");

	this->data += rate_ * gradient_.getData ();
}


template class GeneralParameters<bool>;
template class GeneralParameters<short>;
template class GeneralParameters<unsigned short>;
template class GeneralParameters<int>;
template class GeneralParameters<unsigned int>;
template class GeneralParameters<float>;
template class GeneralParameters<double>;
